package com.yangming.springboot.service;

import com.yangming.springboot.dao.ModuleDao;
import com.yangming.springboot.dao.PermissionDao;
import com.yangming.springboot.model.TreeDto;
import com.yangming.springboot.vo.Permission;
import com.yangming.springboot.vo.Module;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import java.util.HashMap;
import java.util.List;
import java.util.Map;

@Service
public class ModuleService {

    @Autowired
    private ModuleDao moduleDao;

    @Autowired
    private PermissionDao permissionDao;   
    
    public Map<String, Object> queryModules(){
        Map<String, Object> result = new HashMap<String, Object>();
        List<Module> modules = moduleDao.queryModules();
        result.put("count", modules.size());
        result.put("code", 0);
        result.put("msg", "");
        result.put("data", modules);
        return result;
    }


    public List<TreeDto> queryAllModules(Integer roleId) {
        List<TreeDto> treeDtos = moduleDao.queryAllModules();
        List<Integer> mids = permissionDao.queryRoleHasAllMids(roleId);
        if (mids != null && mids.size() > 0) {
            treeDtos.forEach(t -> {
                if (mids.contains(t.getId())) {
                    t.setChecked(true);
                }
            });
        }
    }
    public void saveModule(){
        /**
         * 参数校验
         * 菜单名唯一
         * url非空，不可重复
         * 上级菜单parentId （-1）
         * 二级/三级菜单parentId非空
         * 权限码非空，不可重复
         *
         * 其他参数默认值
         * isvalid createdate updatedate
         * */

//        return treeDtos;
    }



}
